﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace AGPFP1
{
    public partial class forma1 : Form
    {
        private List<int[]> camino;
        int INICIOX;
        int INICIOY;
        const int ESPACIADO = 20;
        private string texto;

        public forma1(List<int[]> camino, string texto, string titulo, ArrayList instrucciones)
        {
            InitializeComponent();
            this.camino = camino;
            this.texto = texto;
            this.Text = titulo;
            INICIOX = panel1.Size.Width / 2;
            INICIOY = panel1.Size.Height / 2;
            this.CenterToScreen();


            foreach (string s in instrucciones)
            {
                richTextBox1.AppendText(s + "\n");
            }

             //MessageBox.Show(camino.Count + " = " + texto.Length);
        }

        private void forma1_Load(object sender, EventArgs e)
        {
            SolidBrush brocha = new SolidBrush(Color.Black);
            Graphics graficos = panel1.CreateGraphics();
            graficos.FillRectangle(brocha, 0, 0, 50, 50);
        }



        private void panel1_Paint(object sender, PaintEventArgs e)
        {
            Pen pluma = new Pen(Color.Black, 1);
            Point[] puntos = new Point[camino.Count];



            SolidBrush brochaNegra = new SolidBrush(Color.Black);
            SolidBrush brochaRoja = new SolidBrush(Color.Red);
            Graphics graficos = panel1.CreateGraphics();
            graficos.Clear(panel1.BackColor);
            int contador = 0;

            foreach (char letra in this.texto)
            {

                int[] coordenada = this.camino[contador];

                if (letra == 'H')
                {
                    graficos.FillRectangle(brochaNegra, (coordenada[0] * ESPACIADO) + INICIOX, ((-1) * coordenada[1] * ESPACIADO) + INICIOY, 5, 5);

                }
                else
                {
                    graficos.FillRectangle(brochaRoja, (coordenada[0] * ESPACIADO) + INICIOX, ((-1) * coordenada[1] * ESPACIADO) + INICIOY, 5, 5);
                }

                puntos[contador] = new Point(((coordenada[0] * ESPACIADO) + INICIOX) + 2, (((-1) * coordenada[1] * ESPACIADO) + INICIOY) + 2);
                contador++;
                //MessageBox.Show("si dibuje");
            }



            graficos.DrawLines(pluma, puntos);
        }


    }
}
